/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Test;

/**
 *
 * @author Administrador
 */
// Librerias ...
import java.net.*;
import java.io.*;

public class SocketCliente extends Thread {
// Atributos de la clase.
// Conexion Socket

    private Socket Conexion;
// Hilo ...
    public Thread Hilo;
    // Flujo de entrada y salida por objetos ...
    private ObjectInputStream ObjectEntrada;
    private ObjectOutputStream ObjectSalida;
    // Opciones
    int Opcion;

    public SocketCliente(String Host, int Puerto) {
        try {
            // Conexion socket ...
            Conexion = new Socket(Host, Puerto);
            // Iniciar flujos de entrada y salida.
            ObjectSalida = new ObjectOutputStream(Conexion.getOutputStream());
            ObjectSalida.flush();
            ObjectEntrada = new ObjectInputStream(Conexion.getInputStream());
            // Proceso de espera ...
            Hilo = new Thread(this);
            Hilo.start();
        } catch (IOException e) {
        }
    } // fin del constructor

    public void Peticion(int Valor) {
        try {
            ObjectSalida.writeInt(Valor);
            ObjectSalida.flush();
        } catch (IOException e) {
        }
    } // fin del metodo

    public void run() {
        // Escuchar respuesta del Servidor.
        try { // Intentar recibir datos de entrada desde el servidor.
            do {
                Opcion = ObjectEntrada.readInt();
                System.out.println("Servidor dice : " + Opcion);
            } while (true);
        } catch (IOException e) {
        }
    } // fin del metodo

    private void Cerrar() throws IOException {
        // Cerramos Objetos Salida y Entrada
        ObjectSalida.close();
        ObjectEntrada.close();
        // Cerramos Conexion
        Conexion.close();
    } // fin del metodo.
} // fin del metodo.

